[JavaScript]table-to-jsonを使ってテーブル内容をJSONにする
htmlのテーブル内容をJSONにする
htmlのテーブル内容を取得してJavascriptでなんらかの処理をすることはよくあります。 普通にjqueryを使い、行を取得してセルを取得して・・・と処理すればデータを取得することができますが、 今回紹介するjQuery用プラグイン、「table-to-json」を使用すると、もっと簡単にテーブルのデータをJSON形式で取得できます。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
- jQuery : 1.9.1
セットアップ&動作確認
まずはここからtable-to-jsonをダウンロードしましょう。 ここのlibディレクトリにあるjsファイルを使用します。 そして、下記のようなhtmlをディレクトリ内に作成し、動きを見てみましょう。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>table to json</title> </head> <body> <!-- MAIN CONTENT --> <div id="container"> <h2 id="toc-table-to-json-demo">table to json Demo</h2> <table id='example-table'> <thead> <tr> <th data-override="name">名前</th> <th data-override="tel">電話番号</th> <th data-override="age">年齢</th> </tr> </thead> <tbody> <tr> <td>taro</td> <td>090-xxxx-xxxx</td> <td>30</td> </tr> <tr> <td>花子</td> <td>03-xxxx-xxxx</td> <td>31</td> </tr> <tr> <td>たけぞう</td> <td>080-xxxx-xxxx</td> <td>120</td> </tr> </tbody> </table> <button id="btn">table to json</button> </div> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="lib/jquery.tabletojson.js"></script> <script> $('#btn').click(function () { var table = $('#example-table').tableToJSON(); console.log(table); alert(JSON.stringify(table)); }); </script> </body> </html>
テーブルをjQueryで取得し、tableToJSON関数を呼ぶだけでテーブル内容をJSON化できます。簡単ですね。 また、thタグにdata-override属性をつけることで、JSON化した際のプロパティ名を指定できます。
まとめ
簡単にテーブル内容がJSONデータとして取得できることがわかりました。 また、ignoreColumns/onlyColumnsオプションをすれば、JSON化するカラムを自分で決めることもできます。